use std::os::windows::fs::symlink_dir as symlink;
let dst_dir = dst.parent().unwrap();
- assert!(src.starts_with(dst_dir));
- symlink(src.strip_prefix(dst_dir).unwrap(), dst)
+ let src = if src.starts_with(dst_dir) {
+ src.strip_prefix(dst_dir).unwrap()
+ } else {
+ src
+ };
+ symlink(src, dst)
} else {
fs::hard_link(src, dst)
};
use std::path::Path;
use std::fs::{self, File};
use std::env;
-use std::io::Write;
use hamcrest::assert_that;
-use cargotest::{process, ChannelChanger};
+use cargotest::{process, sleep_ms, ChannelChanger};
use cargotest::support::{execs, project};
#[test]
check_dir_contents(
&p.root().join("out"),
&["foo"],
- &["foo"],
+ &["foo", "foo.dSYM"],
&["foo.exe", "foo.pdb"],
);
}
check_dir_contents(
&p.root().join("out"),
&["libfoo.so"],
- &["libfoo.so"],
+ &["libfoo.dylib"],
&["foo.dll", "foo.dll.lib"],
);
}
check_dir_contents(
&p.root().join("out"),
&["foo"],
- &["foo"],
+ &["foo", "foo.dSYM"],
&["foo.exe", "foo.pdb"],
);
}
execs().with_stdout("foo"),
);
- fs::File::create(p.root().join("src/main.rs"))
- .unwrap()
- .write_all(br#"fn main() { println!("bar") }"#)
- .unwrap();
+ sleep_ms(1000);
+ p.change_file("src/main.rs", r#"fn main() { println!("bar") }"#);
assert_that(
p.cargo("build -Z out-dir --out-dir out")